Telegram Group & Telegram Channel
SOLID Principles
(part 3)
ثالث مبدأ(LSP) Liskov Substitution Principle

ليسكوف هو اسم العالمة اللي اقترحت هذا المبدأ وهو مبدأ الاستبدال والتعويض اللي يعرفك متى تعمل وراثة من كلاس ثاني ومتى لا وهذا المبدأ يُعتبر تكملة للمبدأ OCP.

‘‘If you have class B inherits from class A then class A should be replaceable by class B without any changes’’

بمعنى اذا كان B يورث من A فإن سلوك الـ client لن يتغير ويظل يعمل بكفاءة اذا استخدمنا B بدلاً من A.

لنفترض لدينا كلاس للطيور وفيها دالتين eat , fly ويوجد كلاسين اخرين(البطريق، النورس) يرثوا من الطيور.

من الطبيعي ان كُل كلاس اصبح يمتلك fly,eat .

لو انشئنا كائن من كلاس الطيور واستخدمنا الدالتين
Bird a = new Bird()
a.fly()
a.eat()

ومن ثَم غيرنا نوع الكائن لكلاس النورس.
Bird a = new Seagull()

فهل سلوك الـ client لن يتغير ويظل يعمل بكفاءة 🤔!

نعم ،لأنه النورس بُكل بساطه يطير ويأكل، إذاً هُنا طبقنا مبدأ ليسكوف.

طيب لو نغير نوع الكائن لكلاس البطريق !
Bird a = new Penguin()

هنا من الطبيعي جداً أن سلوك الـ clint يتغير ولن يعمل بكفاءة لأن البطريق يأكل ولاكن لا يطير ، إذاً هُنا تفشل عملية الوراثة .

طيب ايش الحل🤔؟

موضح في الصورة (2) 🙏.

وأخيراً متى يُستخدم هذا المبدأ ؟!

حينما نجد بأن الكلاسات الفرعية لا تتصرف بنفس الكيفية التي تتصرف بها الكلاسات الرئيسية .

لذلك نحتاج إلى تطبيق هذا المبدأ من أجل أن نضمن أن الكلاسات المُشتقة تستطيع أن تتصرف وكأنها كلاس رئيسي دون أن يؤثر على سلوك الـ client.

يتبع..



tg-me.com/beginprogrammer/635
Create:
Last Update:

SOLID Principles
(part 3)
ثالث مبدأ(LSP) Liskov Substitution Principle

ليسكوف هو اسم العالمة اللي اقترحت هذا المبدأ وهو مبدأ الاستبدال والتعويض اللي يعرفك متى تعمل وراثة من كلاس ثاني ومتى لا وهذا المبدأ يُعتبر تكملة للمبدأ OCP.

‘‘If you have class B inherits from class A then class A should be replaceable by class B without any changes’’

بمعنى اذا كان B يورث من A فإن سلوك الـ client لن يتغير ويظل يعمل بكفاءة اذا استخدمنا B بدلاً من A.

لنفترض لدينا كلاس للطيور وفيها دالتين eat , fly ويوجد كلاسين اخرين(البطريق، النورس) يرثوا من الطيور.

من الطبيعي ان كُل كلاس اصبح يمتلك fly,eat .

لو انشئنا كائن من كلاس الطيور واستخدمنا الدالتين
Bird a = new Bird()
a.fly()
a.eat()

ومن ثَم غيرنا نوع الكائن لكلاس النورس.
Bird a = new Seagull()

فهل سلوك الـ client لن يتغير ويظل يعمل بكفاءة 🤔!

نعم ،لأنه النورس بُكل بساطه يطير ويأكل، إذاً هُنا طبقنا مبدأ ليسكوف.

طيب لو نغير نوع الكائن لكلاس البطريق !
Bird a = new Penguin()

هنا من الطبيعي جداً أن سلوك الـ clint يتغير ولن يعمل بكفاءة لأن البطريق يأكل ولاكن لا يطير ، إذاً هُنا تفشل عملية الوراثة .

طيب ايش الحل🤔؟

موضح في الصورة (2) 🙏.

وأخيراً متى يُستخدم هذا المبدأ ؟!

حينما نجد بأن الكلاسات الفرعية لا تتصرف بنفس الكيفية التي تتصرف بها الكلاسات الرئيسية .

لذلك نحتاج إلى تطبيق هذا المبدأ من أجل أن نضمن أن الكلاسات المُشتقة تستطيع أن تتصرف وكأنها كلاس رئيسي دون أن يؤثر على سلوك الـ client.

يتبع..

BY بدايه مبرمج


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/beginprogrammer/635

View MORE
Open in Telegram


بدايه مبرمج Telegram | DID YOU KNOW?

Date: |

Telegram and Signal Havens for Right-Wing Extremists

Since the violent storming of Capitol Hill and subsequent ban of former U.S. President Donald Trump from Facebook and Twitter, the removal of Parler from Amazon’s servers, and the de-platforming of incendiary right-wing content, messaging services Telegram and Signal have seen a deluge of new users. In January alone, Telegram reported 90 million new accounts. Its founder, Pavel Durov, described this as “the largest digital migration in human history.” Signal reportedly doubled its user base to 40 million people and became the most downloaded app in 70 countries. The two services rely on encryption to protect the privacy of user communication, which has made them popular with protesters seeking to conceal their identities against repressive governments in places like Belarus, Hong Kong, and Iran. But the same encryption technology has also made them a favored communication tool for criminals and terrorist groups, including al Qaeda and the Islamic State.

How to Invest in Bitcoin?

Like a stock, you can buy and hold Bitcoin as an investment. You can even now do so in special retirement accounts called Bitcoin IRAs. No matter where you choose to hold your Bitcoin, people’s philosophies on how to invest it vary: Some buy and hold long term, some buy and aim to sell after a price rally, and others bet on its price decreasing. Bitcoin’s price over time has experienced big price swings, going as low as $5,165 and as high as $28,990 in 2020 alone. “I think in some places, people might be using Bitcoin to pay for things, but the truth is that it’s an asset that looks like it’s going to be increasing in value relatively quickly for some time,” Marquez says. “So why would you sell something that’s going to be worth so much more next year than it is today? The majority of people that hold it are long-term investors.”

بدايه مبرمج from sa


Telegram بدايه مبرمج
FROM USA